package starComponent.parallelcoordinates;

import java.awt.Color;

import starComponent.E_PossibleBranches;

/**
 * @author Charles Perin
 * 11 avr. 2011
 * LIMSI - INRIA Rennes
 * charles.perin@free.fr
 */
public class ParallelBranchSlider extends A_ParallelBranch{

	private static final long serialVersionUID = -6622621084774458091L;

	private ParallelThumb thumb;

	/**
	 * Branche "Slider"
	 * @param parallelCoordinates le starComponent associe
	 * @param name le nom de la branche
	 * @param min valeur min
	 * @param max valeur max
	 * @param value valeur par defaut
	 * @param color la couleur de la branche
	 * @param ladder l'echelle de valeurs
	 * @param angle l'angle de la branche : [0;2PI]
	 */
	public ParallelBranchSlider(ParallelCoordinatesComponent parallelCoordinates, E_PossibleBranches branch, int position, Color color, ParallelLadder ladder) {
		super(parallelCoordinates, branch, position, color, ladder);
		if(branch.getType()==E_PossibleBranches.QUANTITATIVE_SLIDER || branch.getType()==E_PossibleBranches.QUALITATIVE_SLIDER){
			this.thumb = new ParallelThumb(this);
			thumb.setValue(branch.getStartValue());
		}
		else System.err.println("StarBranchSlider: erreur a la creation de "+branch.getName());
	}

	@Override
	public String toString(){
		return this.getName();
	}


	/**
	 * parametrise le thumb
	 * @param normalColor les 2 couleurs composant la couleur du thumb au repos
	 * @param selectedColor les 2 couleurs composant la couleur du thumb quand selectionne
	 */
	public void setThumbColors(Color[]normalColor,Color[]selectedColor){
		thumb.setThumbColor(normalColor);
		thumb.setThumbSelectedColor(selectedColor);
	}

	public void setValue(double value) {
		thumb.setValue(value);
	}

	public double getValue() {
		return thumb.getValue();
	}

	public void setThumb(ParallelThumb thumb) {
		this.thumb = thumb;
	}

	public ParallelThumb getThumb() {
		return thumb;
	}

}
